// #include <stdio.h>
// #include<stdlib.h>
// #define N 4 //定义矩阵的维度

// //验证对称矩阵的下标映射
// void testSymmetricMatrix() {
//     int mat[N][N] = {{1,3,5,9},
//                      {3,-6,2,4},
//                      {5,2,0,-2},
// 		             {9,4,-2,8}};
//     int sym[N*(N+1)/2]; //对称矩阵压缩后的数组
//     int k = 0;
//     for(int i = 0; i < N; i++) {
//         for(int j = i; j <N; j++) { //只需处理下三角部分
//             sym[k++] = mat[i][j];
//         }
//     }
//     printf("对称矩阵的压缩数组为：\n");
//     for(int i = 0; i < N*(N+1)/2; i++) {
//         printf("%d ", sym[i]);
//     }
//     printf("\n");
// }

// //验证上三角矩阵的下标映射
// void testUpperTriangularMatrix() {
//     int mat[N][N] = {{1,3,5,9},
//                      {0,-6,2,4},
//                      {0,0,0,-2},
//                      {0,0,0,-8}};
//     int tri[N*(N+1)/2]; //上三角矩阵压缩后的数组
//     int k = 0;
//     for(int i = 0; i < N; i++) {
//         for(int j = i; j < N; j++) { //只需处理上三角部分
//             tri[k++] = mat[i][j];
//         }
//     }
//     printf("上三角矩阵的压缩数组为：\n");
//     for(int i = 0; i < N*(N+1)/2; i++) {
//         printf("%d ", tri[i]);
//     }
//     printf("\n");
// }

// //验证下三角矩阵的下标映射
// void testLowerTriangularMatrix() {
//     int mat[N][N] = {{1,0,0,0},
//                      {3,-6,0,0},
//                      {5,2,0,0},
//                      {9,4,-2,8}};
//     int tri[N*(N+1)/2]; //下三角矩阵压缩后的数组
//     int k = 0;
//     for(int i = 0; i < N; i++) {
//         for(int j = 0; j <= i; j++) { //只需处理下三角部分
//             tri[k++] = mat[i][j];
//         }
//     }
//     printf("下三角矩阵的压缩数组为：\n");
//     for(int i = 0; i < N*(N+1)/2; i++) {
//         printf("%d ", tri[i]);
//     }
//     printf("\n");
// }

// int main() {
//     testSymmetricMatrix();
//     testUpperTriangularMatrix();
//     testLowerTriangularMatrix();
//     system("pause");
//     return 0;
// }

